--[[ 编码: WMS-13-09 名称: 预收货单-定版后 作者:HAN 日期:2025-1-29 级别:固定 (说明本段代码在项目中不太会变化) 函数: AfterStateChange 功能: 1)删除系统中和这预收货单号相关的最大行号记录 属于优化数据记录减少垃圾数据的操作 2) 【预收货单明细】设置为定版 更改记录: --]] json = require ("json") mobox = require ("OILua_JavelinExt") m3 = require("oi_base_mobox") function AfterStateChange ( strLuaDEID ) local nRet, strRetInfo -- 获取 S_NO nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_NO","S_STATE" ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end local obj_attrs = json.decode( strRetInfo ) local asn_no = obj_attrs[1].value -- 预收货单编号 local state = obj_attrs[2].value -- 预收货单状态 if ( asn_no == '') then lua.Warning( strLuaDEID, debug.getinfo(1), "预收货单编号为空! " ) return end -- 清除 asn_no 的最大行号记录 () nRet, strRetInfo = mobox.removeSerialNumber( "行号", asn_no ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "removeSerialNumber() 失败! "..strRetInfo ) end -- 设置【预收货单明细】的状态=定版 local strCondition = "S_ASN_NO = '"..asn_no.."'" nRet, strRetInfo = mobox.setDataObjStateByCondition( strLuaDEID, "ASN_Detail", strCondition, state ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "setDataObjStateByCondition() 失败! "..strRetInfo ) end end